package com.altran.web.servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.altran.web.forms.FormularioMantenimientoConcepto;
import com.altran.web.forms.FormularioMantenimientoConsultor;
import com.altran.web.model.Consultor;
import com.altran.web.service.GestionDedicacionesServ;
import com.altran.web.service.GestionDedicacionesServImpl;

/**
 * Servlet implementation class GestionDedicacionesServlet
 */
public class GestionDedicacionesServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
      

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//LOGICA DE ACCIONES MANTENIMIENTO
		String action = "";
		//ACCION MANTENIMIENTO CONSULTOR
		if (request.getParameter("crearconsultor") != null || request.getParameter("modificarconsultor") != null)
			action = "1";
		//ACCION MANTENIMIENTO CONCEPTO
		if (request.getParameter("crearconcepto") != null || request.getParameter("modificarconcepto") != null)
			action = "2";
		//Si no es ninguna acción se accede se recoge el parametro action pasado por la URL 
		if (action == "")
			action = request.getParameter("action");
		
		switch (action) {
		case "1":
			//MANTENIMIENTO CONSULTORES
			
			//Han pulsado el botón de crear consultor
			if ( request.getParameter("crearconsultor") != null || request.getParameter("modificarconsultor") != null) {
				FormularioMantenimientoConsultor form = new FormularioMantenimientoConsultor(request);
				request.setAttribute("form", form);
				
				/*CREAMOS o MODIFICAMOS un nuevo consultor si NO existen errores en el formulario*/
				if (form.getMensajesError().size() == 0) {
					if ( request.getParameter("crearconsultor") != null) {
						GestionDedicacionesServ servicio = new GestionDedicacionesServImpl();
						servicio.crearConsultor(form.getNombre(), form.getTelefono(), form.getEmail());
					} else {
						GestionDedicacionesServ servicio = new GestionDedicacionesServImpl();
						Consultor consultor = servicio.buscarConsultorByNombre(form.getNombre());
						if (consultor != null)
							servicio.modificarConsultor(consultor.getId_consultor(),form.getNombre(), form.getTelefono(), form.getEmail());
					}
				}
				
				RequestDispatcher dispatcher = 
						request.getRequestDispatcher("mantenimientoconsultor.jsp");
				dispatcher.forward(request, response);
			} else {
				request.setAttribute("firstTime", true);
				RequestDispatcher dispatcher = 
						request.getRequestDispatcher("mantenimientoconsultor.jsp");
				dispatcher.forward(request, response);
			}
			
			
			break;
		case "2":
			//MANTENIMIENTO CONCEPTO: PROYECTO O BAJA
			
			if ( request.getParameter("crearconcepto") != null ) {
				FormularioMantenimientoConcepto form = new FormularioMantenimientoConcepto(request);
				request.setAttribute("form", form);
				
				/*CREAMOS o MODIFICAMOS un nuevo consultor si NO existen errores en el formulario*/
				if (form.getMensajesError().size() == 0) {
					if ( request.getParameter("crearconcepto") != null) {
						GestionDedicacionesServ servicio = new GestionDedicacionesServImpl();
						servicio.crearConcepto(form.getNombre());
					} else {
						
					}
				}
				
				RequestDispatcher dispatcher = 
						request.getRequestDispatcher("mantenimientoconcepto.jsp");
				dispatcher.forward(request, response);
			} else {
				request.setAttribute("firstTime", true);
				RequestDispatcher dispatcher = 
						request.getRequestDispatcher("mantenimientoconcepto.jsp");
				dispatcher.forward(request, response);
			}
			
			break;

		default:
			break;
		}
		
		
		
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

}
